home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
data
/
pvap322a
/
pvapfile.plp
< prev
next >
Wrap
Text File
|
1993-11-30
|
16KB
|
667 lines
/************************************************************************
* ファイル操作 *
************************************************************************/
/* ディレクトリ取得 */
%getcdir2 {
case (@nochar(@getcdir),
{3},{im(@getchar(@getcdir,1,2))},,{im(@getcdir)});
};
/* ファイル名にワイルドカード(*,?)が含まれるかチェックする */
%wild{
[file1]
case (@nochar(file1)==0,
{Yes}, {im({No})},
{No}, {case (@getchar(file1,1,1),
{*}, {im({Yes})},
{?}, {im({Yes})},,
{im(@wild(@getchar(file1,2)))});});
};
/* 入力ファイル選択(ワイルドカード不可) */
%FILEsel0{
[MSG,TYP]
SNDMSG({erande_f.snd});
footnote(MSG);
case (TYP={},
{Yes}, {OLDFILE:=@filesel},
{No}, {OLDFILE:=@filesel(TYP)});
case (OLDFILE={},
{Yes}, {im({})},
{No}, {case (@wild(OLDFILE),
{Yes},
{SNDMSG({kaknin_f.snd});
footnote({ワイルドカード指定は出来ません});
select({ワイルドカード指定は出来ません},
99999,,{ 確認 },);
FILEsel0(MSG,TYP)},
{No},
{case (@nochar(@getcdir)==3,
{Yes},
{OLDFILE:=@getcdir|OLDFILE},
{No},
{OLDFILE:=@getcdir|{\}|OLDFILE});
case (@filechk(OLDFILE),
{No},
{SNDMSG({okasi_f.snd});
footnote(OLDFILE|{ がありません});
select(OLDFILE|{ がありません},
99999,,{ 確認 },);
FILEsel0(MSG,TYP);},
{Yes},
{im(OLDFILE)});});});
};
/* 入力ファイル選択(ワイルドカード可) */
%FILEsel1{
[MSG,TYP]
SNDMSG({erande_f.snd});
footnote(MSG);
case (TYP={},
{Yes}, {OLDFILE:=@filesel},
{No}, {OLDFILE:=@filesel(TYP)});
case (OLDFILE={},
{Yes}, {im({})},
{No}, {case (@wild(OLDFILE),
{Yes},
{case (@nochar(@getcdir)==3,
{Yes},
{OLDFILE:=@getcdir|OLDFILE},
{No},
{OLDFILE:=@getcdir|{\}|OLDFILE});
im(OLDFILE);},
{No},
{case (@nochar(@getcdir)==3,
{Yes},
{OLDFILE:=@getcdir|OLDFILE},
{No},
{OLDFILE:=@getcdir|{\}|OLDFILE});
case (@filechk(OLDFILE),
{No},
{SNDMSG({okasi_f.snd});
footnote(OLDFILE|{ がありません});
select(OLDFILE|{ がありません},
99999,,{ 確認 },);
FILEsel1(MSG,TYP);},
{Yes},
{im(OLDFILE)});});});
};
/* ファイル名変更 */
%RENAME{
%FILEsel2{
SNDMSG({nyuryo_f.snd});
footnote({新ファイル名を入力して下さい 旧ファイル名 }|OLDFILE);
NEWFILE:=@input({新ファイル名を入力して下さい},,@tail(OLDFILE,{\}));
im(NEWFILE);
};
loop({
case (@FILEsel1({ファイル名を変更するファイルを}|
{指定して下さい},)={},
{Yes}, {im({No})},
{No}, {case (@FILEsel2={},
{Yes},{im({No})},
{No},
{footnote({ファイル名変更 }|
OLDFILE|{ -> }|NEWFILE);
command({ren }|OLDFILE|{ }|NEWFILE);
im({Yes});});});
});
};
/* 全ファイル削除 */
%DELall{
SNDMSG({nyuryo_f.snd});
footnote({全ファイル削除するディレクトリへ移動して}|
{右クリックして下さい});
%dmy @filesel;
OLDDIR:=@getcdir;
SNDMSG({kaknin_f.snd});
case (@nochar(OLDDIR)==3,
{Yes}, {footnote({全ファイル削除 }|OLDDIR|{*.*})},
{No}, {footnote({全ファイル削除 }|OLDDIR|{\*.*})});
select (OLDDIR|{ の全ファイルを削除してもよろしいですか?},99999,,
{ は い },{setcdir(OLDDIR);command({echo y|del *.*})},
{ いいえ },);
};
/* ファイル凍結 */
%LHAarc{
%FILEsel2{
SNDMSG({nyuryo_f.snd});
footnote({書庫ファイル名を入力して下さい 元ファイル }|OLDFILE);
NEWFILE:= @filesel({LZH});
NEWDIR:= @getcdir;
case (NEWFILE<>{},
{Yes},{case (@nochar(NEWDIR)==3,
{Yes}, {NEWFILE:=NEWDIR|NEWFILE},
{No}, {NEWFILE:=NEWDIR|{\}|NEWFILE})});
im(NEWFILE);
};
loop({
case (@FILEsel1({圧縮凍結するファイルを指定して下さい},)={},
{Yes}, {im({No})},
{No}, {case (@FILEsel2={},
{Yes},{im({No})},
{No},
{footnote({ファイル圧縮凍結処理中 }|
OLDFILE|{ -> }|NEWFILE);
case (DIR2={},
{No},
{command(DIR2|{\lha u }|NEWFILE|
{ }|OLDFILE)},
{Yes},
{command({lha u }|NEWFILE|
{ }|OLDFILE)});
im({Yes});});});
});
};
/* ファイル解凍 */
%LHAext{
loop({
case (@FILEsel0({解凍する *.LZH ファイルを指定して下さい},{LZH})={},
{Yes}, {im({No})},
{No}, {var LHADIR[40];
SNDMSG({nyuryo_f.snd});
footnote({解凍したファイルを置くディレクトリに移動して}|
{右クリックして下さい});
filesel;
LHADIR:=@getcdir;
case (@nochar(LHADIR)={3},
{No},{LHADIR:=LHADIR|{\}});
footnote({ファイル解凍処理中 }|OLDFILE);
case (DIR2={},
{No},
{command(DIR2|{\lha x }|OLDFILE|{ }|LHADIR)},
{Yes},
{command({lha x }|OLDFILE|{ }|LHADIR)});
im({Yes});});
});
};
/* 凍結ファイル内容表示 */
%LHAlst{
loop({
case (@FILEsel0({内容表示する *.LZH ファイルを}|
{指定して下さい},{LZH})={},
{Yes}, {im({No})},
{No}, {footnote({凍結ファイル内容表示中 }|OLDFILE);
case (DIR2={},
{No}, {command(DIR2|{\lha l }|OLDFILE)},
{Yes}, {command({lha l }|OLDFILE)});
im({Yes});});
});
};
/* ファイル石化 */
%ISHstr{
loop({
case (@FILEsel1({*.ISH ファイルに変換するファイルを}|
{指定して下さい},)={},
{Yes}, {im({No})},
{No}, {case (OLDFILE={},
{Yes},{im({No})},
{No},
{footnote({ISHファイル変換処理中 }|OLDFILE);
case (DIR2={},
{No},
{command(DIR2|{\ish }|OLDFILE|{ /s8})},
{Yes},
{command({ish }|OLDFILE|{ /s8})});
im({Yes});});});
});
};
/* ファイル解石 */
%ISHres{
loop({
case (@FILEsel1({復元する *.ISH ファイルを指定して下さい},{ISH})={},
{Yes}, {im({No})},
{No}, {case (OLDFILE={},
{Yes},{im({No})},
{No},
{footnote({ISHファイル復元処理中 }|OLDFILE);
case (DIR2={},
{No},
{command(DIR2|{\ish }|OLDFILE|{ /r})},
{Yes},
{command({ish }|OLDFILE|{ /r})});
im({Yes});});});
});
};
/* ダイエット処理 */
%DIETarc{
loop({
case (@FILEsel1({ダイエットするファイルを指定して下さい},)={},
{Yes}, {im({No})},
{No}, {case (OLDFILE={},
{Yes},{im({No})},
{No},
{footnote({ダイエット処理中 }|OLDFILE);
case (DIR2={},
{No},
{command(DIR2|{\diet }|OLDFILE)},
{Yes},
{command({diet }|OLDFILE)});
im({Yes});});});
});
};
/* ダイエットファイル復元 */
%DIETres{
loop({
case (@FILEsel1({復元するダイエットファイルを}|
{指定して下さい},)={},
{Yes}, {im({No})},
{No}, {case (OLDFILE={},
{Yes},{im({No})},
{No},
{footnote({ダイエットファイル復元処理中 }|
OLDFILE);
case (DIR2={},
{No},
{command(DIR2|{\diet -ra }|OLDFILE)},
{Yes},
{command({diet -ra }|OLDFILE)});
im({Yes});});});
});
};
/* 差分ファイル作成処理 */
%BDIFF{
%FILEsel2{
SNDMSG({nyuryo_f.snd});
footnote({新ファイル名を入力して下さい 旧ファイル }|OLDFILE);
NEWFILE:=@filesel;NEWDIR:=@getcdir;
case (NEWFILE<>{},
{Yes},{case(@nochar(NEWDIR)==3,
{Yes},{NEWFILE:=NEWDIR|NEWFILE},
{No},{NEWFILE:=NEWDIR|{\}|NEWFILE})});
im(NEWFILE);
};
loop ({
case (@FILEsel0({差分を作成する旧ファイルを}|
{指定して下さい},)={},
{Yes}, {im({No})},
{No}, {case (@FILEsel2={},
{Yes},
{im({No})},
{No},
{footnote({ファイル差分作成処理中 }|
OLDFILE|{ -> }|NEWFILE);
command({BDIFF }|OLDFILE|{ }|NEWFILE);
im({Yes})})});
});
};
/* 差分ファイル復元処理 */
%BUPDATE{
loop ({
case (@FILEsel0({差分ファイルを指定して下さい},{BDF})={},
{Yes}, {im({No})},
{No}, {footnote({ファイル差分更新処理中 差分ファイル }|
OLDFILE);
command({BUPDATE }|OLDFILE);
im({Yes})});
});
};
/* ディレクトリ作成 */
%MKDIR{
SNDMSG({nyuryo_f.snd});
footnote({作成するディレクトリ名を入力して下さい});
NEWDIR:=@filesel;
OLDDIR:=@getcdir;
case (@nochar(OLDDIR)==3,
{Yes}, {NEWDIR:=OLDDIR|NEWDIR},
{No}, {NEWDIR:=OLDDIR|{\}|NEWDIR});
mkdir2(NEWDIR);
};
/* ディレクトリ削除 */
%RMDIR{
SNDMSG({nyuryo_f.snd});
footnote({削除するディレクトリへ移動して右クリックして下さい});
%dmy @filesel;
OLDDIR:=@getcdir;
case (@nochar(OLDDIR)==3,
{Yes}, {SNDMSG({kaknin_f.snd});
footnote({ルートディレクトリは削除出来ません});
select({ルートディレクトリは削除出来ません},
99999,,{ 確認 },)},
{No}, {SNDMSG({kaknin_f.snd});
footnote({削除ディレクトリ }|OLDDIR);
select( {ディレクトリ }|OLDDIR|
{ を削除してもよろしいですか?},99999,,
{ は い }, {setcdir2(@body(OLDDIR,,{\}));
command({rmdir }|@tail(OLDDIR,{\}));},
{ いいえ },);});
};
/* メモを削除 */
%delmemo{
loop({
case(@mcheck>=memono,{Yes},{mclose(3)});
im(@mcheck>=memono);
});
CloseAllMemo;
loop({
case (@mlast>=memono,
{Yes}, {case(@mcheck!=@mlast,{Yes},{mopen(@mlast)});
mclose(3);
im({Yes})},
{No}, {im({No})});
});
};
/* 複数ファイルコピー */
%fscopy{
SNDMSG({erande_f.snd});
footnote({複写するファイルを指定して下さい});
multi;
case (@mlast=memono,
{Yes}, {SNDMSG({nyuryo_f.snd});
footnote({複写先ディレクトリに移動して右クリックして}|
{下さい});
%a @filesel;
footnote({});
case (a<>{.},
{Yes}, {SNDMSG({kaknin_f.snd});
footnote({ファイルを複写して}|
{よろしいですか?});
select({ファイルを複写して}|
{よろしいですか?},
99999,delmemo,
{ は い },
{Count({command({COPY }|TARPATH)})},
{ いいえ },delmemo)},
{No}, delmemo)});
};
/* 複数ファイル削除 */
%fsdel{
SNDMSG({erande_f.snd});
footnote({削除するファイルを指定して下さい});
multi;
case (@mlast=memono,
{Yes}, {SNDMSG({kaknin_f.snd});
footnote({ファイルを削除してよろしいですか?});
select({ファイルを削除して}|
{よろしいですか?},
99999,delmemo,
{ は い },
{Count({command({del }|TARPATH)})},
{ いいえ },delmemo)},
{No}, delmemo);
};
/* 複数ファイル移動 */
%fsmove{
SNDMSG({erande_f.snd});
footnote({移動するファイルを指定して下さい});
multi;
case (@mlast=memono,
{Yes}, {SNDMSG({nyuryo_f.snd});
footnote({移動先ディレクトリに移動して右クリックして}|
{下さい});
%a @filesel;
footnote({});
case (a<>{.},
{Yes},{SNDMSG({kaknin_f.snd});
footnote({ファイルを移動して}|
{よろしいですか?});
select({ファイルを移動して}|
{よろしいですか?},
99999,delmemo,
{ は い },
{Count({command({COPY }|TARPATH);
delfile(TARPATH)})},
{ いいえ },delmemo)},
{No}, delmemo)});
};
/* 複数ファイル凍結 */
%fsarc{
var arcpath[80];
var arcfile[12];
SNDMSG({erande_f.snd});
footnote({凍結するファイルを指定して下さい});
multi;
case (@mlast=memono,
{Yes}, {SNDMSG({nyuryo_f.snd});
footnote({凍結ファイル名を入力して下さい}|
{(「.LZH」は不要)});
arcfile:=@filesel;
footnote({});
arcpath:=@getcdir2;
case (arcfile<>{},
{Yes},{SNDMSG({kaknin_f.snd});
footnote({ファイルを凍結して}|
{よろしいですか?});
select({ファイルを凍結して}|
{よろしいですか?},
99999,delmemo,
{ は い },
{Count({command({lha a }|
arcpath|
{\}|@head(arcfile,{.})|
{ }|TARPATH)})},
{ いいえ },
delmemo)},
{No}, delmemo)});
};
/* 複数ファイル解凍 */
%fsext{
var arcfile[12];
var newdir[8];
%getarcfile{[MEMO,OPR]
arcfile:=@head(@getchar(@memo(MEMO,@xlinenum,1),3,12),{ });
case (arcfile<>{} && arcfile<>{------------} && arcfile<>{sting} &&
arcfile<>{Name},
{Yes}, {OPR},,
{mclose(1);
mopen(memono);
mclose(1);
mopen(memono+1)});
};
%getlzh{
CloseAllMemo;
mopen(memono+1);
getarcfile(memono+1, {mclose(1);
madd(memono,arcfile|{\n});
mopen(memono);
mclose(1);
mopen(memono+1)});
};
%extfile{
CloseAllMemo;
mopen(memono+1);
mclose(2);
footnote({解凍先ディレクトリに移動して右クリックして下さい});
%a @filesel;
footnote({});
case (a<>{.},
{Yes}, {SNDMSG({nyuyro_f.snd});
newdir:=@input({作成するディレクトリ名を}|
{入力して下さい\n}|
{(空入力または右クリックで制作しません)});
SNDMSG({kaknin_f.snd});
select({ファイルを解凍してもよろしいですか?},
99999,delmemo,
{ は い },
{case (newdir<>{},
{Yes}, {command({MD }|newdir);
command({CD }|newdir)});
case (@nolmemo(memono)={0},
{Yes},
{command({lha e }|NEWDIR|{\}|NEWFILE)},
{No},
{max:=@nolmemo(memono);
now:={1};
Count({
command({lha e }|NEWDIR|{\}|NEWFILE|
{ }|TARPATH);
})})},
{ いいえ },
delmemo)},
{No}, delmemo);
};
%out{
case(@nolmemo(memono)<>{0},{Yes},{extfile});
delmemo;
};
SNDMSG({erande_f.snd});
footnote({解凍するファイルを指定して下さい});
NEWFILE:=@filesel;
NEWDIR:=@getcdir2;
case (NEWFILE<>{} && @tail(NEWFILE,{.})={LZH},
{Yes},
{setcdir(DIR1);
command({lha l }|NEWDIR|{\}|NEWFILE|{ > }|TEMPPATH|{\tmpfile});
madd(memono,{});
mopen(memono,0,266,639,459,{w});
mclose(1);
mread(TEMPPATH|{\tmpfile},memono+1);
mopen(memono+1,0,21,639,265,{w});
footnote({終了選択全部},{b});
SNDMSG({erande_f.snd});
loop({
waitx();
case (@xtype,
memono+1,{getlzh;im({Yes})},
101, {out;im({No})},
201, {out;im({No})},
102, {getlzh;im({Yes})},
202, {getlzh;im({Yes})},
103, {extfile;im({No})},
203, {extfile;im({No})},
,{im({Yes})});
});
delfile(TEMPPATH|{\tmpfile});
});
};
/* コマンド実行 */
%Count{[OPR]
CloseAllMemo;
mopen(memono);
mclose(2);
loop({
case (max > now,
{Yes}, {TARPATH:=@memo(memono,now,1);
OPR;
now:=now+1;
im({Yes})},
{No}, {im({No})});
});
delmemo;
};
/* 複数ファイル選択処理 */
%multi{
loop({
NEWFILE:=@filesel;
NEWDIR:=@getcdir2;
case (NEWFILE<>{},
{Yes}, {case(@mlast>=memono,{Yes},{mclose(1)});
madd(memono,NEWDIR|{\}|NEWFILE|{\n});
mopen(memono,0,132,369,449,{w});
im({Yes})},
{No}, {case (@mlast=memono,
{Yes}, {SNDMSG({kaknin_f.snd});
footnote({確認},{b});
loop({
waitx();
case (@xtype,
101,{im({No})},
102,{im({No})});
});
CloseAllMemo;
mopen(memono);
mclose(1);
im({No})},
{No},{im({No})})});
});
max:=@nolmemo(memono);
now:={1};
};
/* 処理選択 */
%FILEman1{
loop({
SNDMSG({erande_f.snd});
footnote({ファイル基本操作の処理を選択して下さい});
select({ファイル基本操作メニュー},99999,{im({No})},
{ ファイル複写 -copy },{fscopy;im({Yes})},
{ ファイル移動 -copy&del },{fsmove;im({Yes})},
{ ファイル名変更 -rename },{RENAME;im({Yes})},
{ 全ファイル削除 -del *.* },{DELall;im({Yes})},
{ ファイル削除 -del },{fsdel;im({Yes})},
{ 終 了 },{im({No})});
});
};
%FILEman2{
loop({
SNDMSG({erande_f.snd});
footnote({ファイル応用操作の処理を選択して下さい});
select({ファイル応用操作メニュー},99999,{im({No})},
{ ファイル凍結 >LHA u },{LHAarc;im({Yes})},
{ 複数ファイル凍結 >LHA u },{fsarc;im({Yes})},
{ ファイル解凍 >LHA x },{LHAext;im({Yes})},
{ 指定ファイル解凍 >LHA e },{fsext;im({Yes})},
{ 凍結ファイル一覧 >LHA l },{LHAlst;im({Yes})},
{ ファイル石化 >ISH /s },{ISHstr;im({Yes})},
{ ファイル解石 >ISH /r },{ISHres;im({Yes})},
{ ファイル圧縮 >DIET },{DIETarc;im({Yes})},
{ ファイル復元 >DIET -ra },{DIETres;im({Yes})},
{ ファイル差分作成 >BDIFF },{BDIFF;im({Yes})},
{ ファイル差分更新 >BUPDATE },{BUPDATE;im({Yes})},
{ 終 了 },{im({No})});
});
};
%DIRman {
loop({
SNDMSG({erande_f.snd});
footnote({ディレクトリ操作の処理を選択して下さい});
select({ディレクトリ操作メニュー},99999,{im({No})},
{ ディレクトリ作成 -mkdir },{MKDIR;im({Yes})},
{ ディレクトリ削除 -rmdir },{RMDIR;im({Yes})},
{ 終 了 },{im({No})});
});
};
%PVAPFILE{
loop({
SNDMSG({erande_f.snd});
footnote({ファイル操作を選択して下さい});
select({ファイル操作メインメニュー},99999,{im({No})},
{ ファイル基本操作 },{FILEman1;im({Yes})},
{ ファイル応用操作 },{FILEman2;im({Yes})},
{ ディレクトリ操作 },{DIRman;im({Yes})},
{ 終 了 },{im({No})});
});
};
/* 実行 */
var max[99];
var now[99];
var OLDFILE[80];
var NEWFILE[80];
var OLDDIR[80];
var NEWDIR[80];
var TARPATH[80];
CloseAllMemo;
%memono @mlast+1;
PVAPFILE;